glmaterial - Man Page






glMaterial(3G)		       OpenGL Reference			glMaterial(3G)



NAME
     glMaterialf, glMateriali, glMaterialfv, glMaterialiv - specify material
     parameters	for the	lighting model


C SPECIFICATION
     void glMaterialf( GLenum face,
		       GLenum pname,
		       GLfloat param )
     void glMateriali( GLenum face,
		       GLenum pname,
		       GLint param )


PARAMETERS
     face    Specifies which face or faces are being updated.  Must be one of
	     GL_FRONT, GL_BACK,	or GL_FRONT_AND_BACK.

     pname   Specifies the single-valued material parameter of the face	or
	     faces that	is being updated.  Must	be GL_SHININESS.

     param   Specifies the value that parameter	GL_SHININESS will be set to.

C SPECIFICATION
     void glMaterialfv(	GLenum face,
			GLenum pname,
			const GLfloat *params )
     void glMaterialiv(	GLenum face,
			GLenum pname,
			const GLint *params )


PARAMETERS
     face Specifies which face or faces	are being updated.  Must be one	of
	  GL_FRONT, GL_BACK, or	GL_FRONT_AND_BACK.

     pname
	  Specifies the	material parameter of the face or faces	that is	being
	  updated.  Must be one	of GL_AMBIENT, GL_DIFFUSE, GL_SPECULAR,
	  GL_EMISSION, GL_SHININESS, GL_AMBIENT_AND_DIFFUSE,  or
	  GL_COLOR_INDEXES.

     params
	  Specifies a pointer to the value or values that pname	will be	set
	  to.


DESCRIPTION
     glMaterial	assigns	values to material parameters.	There are two matched
     sets of material parameters.  One,	the front-facing set, is used to shade
     points, lines, bitmaps, and all polygons (when two-sided lighting is
     disabled),	or just	front-facing polygons (when two-sided lighting is



									Page 1






glMaterial(3G)		       OpenGL Reference			glMaterial(3G)



     enabled).	The other set, back-facing, is used to shade back-facing
     polygons only when	two-sided lighting is enabled.	Refer to the
     glLightModel reference page for details concerning	one- and two-sided
     lighting calculations.

     glMaterial	takes three arguments.	The first, face, specifies whether the
     GL_FRONT materials, the GL_BACK materials,	or both	GL_FRONT_AND_BACK
     materials will be modified.  The second, pname, specifies which of
     several parameters	in one or both sets will be modified.  The third,
     params, specifies what value or values will be assigned to	the specified
     parameter.

     Material parameters are used in the lighting equation that	is optionally
     applied to	each vertex.  The equation is discussed	in the glLightModel
     reference page.  The parameters that can be specified using glMaterial,
     and their interpretations by the lighting equation, are as	follows:

     GL_AMBIENT		 params	contains four integer or floating-point	values
			 that specify the ambient RGBA reflectance of the
			 material.  Integer values are mapped linearly such
			 that the most positive	representable value maps to
			 1.0, and the most negative representable value	maps
			 to -1.0.  Floating-point values are mapped directly.
			 Neither integer nor floating-point values are
			 clamped.  The default ambient reflectance for both
			 front-	and back-facing	materials is (0.2, 0.2,	0.2,
			 1.0).

     GL_DIFFUSE		 params	contains four integer or floating-point	values
			 that specify the diffuse RGBA reflectance of the
			 material.  Integer values are mapped linearly such
			 that the most positive	representable value maps to
			 1.0, and the most negative representable value	maps
			 to -1.0.  Floating-point values are mapped directly.
			 Neither integer nor floating-point values are
			 clamped.  The default diffuse reflectance for both
			 front-	and back-facing	materials is (0.8, 0.8,	0.8,
			 1.0).

     GL_SPECULAR	 params	contains four integer or floating-point	values
			 that specify the specular RGBA	reflectance of the
			 material.  Integer values are mapped linearly such
			 that the most positive	representable value maps to
			 1.0, and the most negative representable value	maps
			 to -1.0.  Floating-point values are mapped directly.
			 Neither integer nor floating-point values are
			 clamped.  The default specular	reflectance for	both
			 front-	and back-facing	materials is (0.0, 0.0,	0.0,
			 1.0).






									Page 2






glMaterial(3G)		       OpenGL Reference			glMaterial(3G)



     GL_EMISSION	 params	contains four integer or floating-point	values
			 that specify the RGBA emitted light intensity of the
			 material.  Integer values are mapped linearly such
			 that the most positive	representable value maps to
			 1.0, and the most negative representable value	maps
			 to -1.0.  Floating-point values are mapped directly.
			 Neither integer nor floating-point values are
			 clamped.  The default emission	intensity for both
			 front-	and back-facing	materials is (0.0, 0.0,	0.0,
			 1.0).

     GL_SHININESS	 params	is a single integer or floating-point value
			 that specifies	the RGBA specular exponent of the
			 material.  Integer and	floating-point values are
			 mapped	directly.  Only	values in the range [0,128]
			 are accepted.	The default specular exponent for both
			 front-	and back-facing	materials is 0.

     GL_AMBIENT_AND_DIFFUSE
			 Equivalent to calling glMaterial twice	with the same
			 parameter values, once	with GL_AMBIENT	and once with
			 GL_DIFFUSE.

     GL_COLOR_INDEXES	 params	contains three integer or floating-point
			 values	specifying the color indices for ambient,
			 diffuse, and specular lighting.  These	three values,
			 and GL_SHININESS, are the only	material values	used
			 by the	color index mode lighting equation.  Refer to
			 the glLightModel reference page for a discussion of
			 color index lighting.

NOTES
     The material parameters can be updated at any time.  In particular,
     glMaterial	can be called between a	call to	glBegin	and the	corresponding
     call to glEnd.  If	only a single material parameter is to be changed per
     vertex, however, glColorMaterial is preferred over	glMaterial (see
     glColorMaterial).

ERRORS
     GL_INVALID_ENUM is	generated if either face or pname is not an accepted
     value.

     GL_INVALID_VALUE is generated if a	specular exponent outside the range
     [0,128] is	specified.

ASSOCIATED GETS
     glGetMaterial








									Page 3






glMaterial(3G)		       OpenGL Reference			glMaterial(3G)



SEE ALSO
     glColorMaterial, glLight, glLightModel





















































									Page 4